// 对axios进行再封装
// 引入axios插件
import axios from 'axios'
// json-bigint用于处理过大的数
import JSONbig from 'json-bigint'
// 设置基地址，以后发送请求会自动携带，不需要再写了
axios.defaults.baseURL = 'http://api-toutiao-web.itheima.net'
// 添加请求拦截器，在发送请求后先拦截处理，然后再继续发送
// config中传入的就是本次请求的配置
axios.interceptors.request.use(config => {
  // 从本地存储中获取token值
  const tokenStr = localStorage.getItem('tokenStr')
  if (tokenStr) {
  // 如果有token就进行拼接，并绑定在请求头里
    config.headers.Authorization = `Bearer ${tokenStr}`
  }
  // 把处理后的数据再返回并继续发送请求
  return config
}, err => {
  // 返回请求中的错误
  return Promise.reject(err)
})

axios.defaults.transformResponse = [
  data => {
    try {
      return JSONbig.parse(data)
    } catch (err) {
      return data
    }
  }
]
// 默认导出
export default axios
